/** 
 * @date 06/05/2013
 * @author Renet_Pourriau
 * @version 1.0
 */

package financier;

import java.io.FileNotFoundException;
import java.io.IOException;

import temporel.DateC;
import mesure.Quantite;

/**
 * This class represent conversion rate
 */
public class TauxConversion {

	private DateC dateValeur;

	private Double taux;

	private Devise base;

	private Devise resultat;

	/**
	 * this is the constructor of conversion rate
	 * @param dateValeur
	 * @param taux
	 * @param base
	 * @param resultat
	 */
	public TauxConversion(DateC dateValeur, Double taux, Devise base,
			Devise resultat) {
		this.setDateValeur(dateValeur);
		this.setTaux(taux);
		this.setBase(base);
		this.setResultat(resultat);
	}

	/**
	 * @return the dateValeur
	 */
	public DateC getDateValeur() {
		return dateValeur;
	}

	/**
	 * @param dateValeur
	 *            the dateValeur to set
	 */
	public void setDateValeur(DateC dateValeur) {
		this.dateValeur = dateValeur;
	}

	/**
	 * @return the taux
	 */
	public Double getTaux() {
		return taux;
	}

	/**
	 * @param taux
	 *            the taux to set
	 */
	public void setTaux(Double taux) {
		this.taux = taux;
	}

	/**
	 * @return the base
	 */
	public Devise getBase() {
		return base;
	}

	/**
	 * @param base
	 *            the base to set
	 */
	public void setBase(Devise base) {
		this.base = base;
	}

	/**
	 * @return the resultat
	 */
	public Devise getResultat() {
		return resultat;
	}

	/**
	 * @param resultat
	 *            the resultat to set
	 */
	public void setResultat(Devise resultat) {
		this.resultat = resultat;
	}

	/**
	 * @param valeur
	 * @param base
	 * @param resultat
	 * @return double representing value converted
	 */
	public Double convert(Quantite valeur) {
		Double quantite = valeur.getQuantite();
		return quantite * this.getTaux();
	}

	/**
	 * @param valeur
	 * @param base
	 * @param resultat
	 * @return String representing the conversion
	 * @throws IOException 
	 * @throws FileNotFoundException 
	 */
	public String convertToString(Quantite valeur) throws FileNotFoundException, IOException {
		Double quantite = valeur.getQuantite();
		Double result = quantite * this.getTaux();
		return quantite + this.getBase().getSymbole() + " est égale à " + result
				+ this.getResultat().getSymbole() + " à la date du " + this.getDateValeur().getDate();
	}

}